Eliza - zasady tworzenia bazy. * * * UWAGA! JEÔLI PRZY TWORZENIU BAZY NIE BËDZIEMY TRZYMAÊ SIË PODANYCH TUTAJ ZASAD, TO EFEKT KOÏCOWY BËDZIE DALEKI OD ZAMIERZONEGO. (jeôli coô wymaga dokîadniejszego opisu, proszë o informacje) * * * * * * Funkcja kontroli bazy. - Zawsze po modyfykacjach w bazie i uruchomieniu programu, naleûy sprawdziê poprawnoôê zapisu wywoîujâc komendë: "check eliza". Rozkaz wywoîuje funkcjë, która sprawdza skîadnië bazy i w razie bîëdów zwraca odpowiedni komentarz i okreôla bîëdne miejsce w bazie. Funkcja nie sprawdza zmiennych wewnëtrznych (oznaczanych jako $NAZWA_ZMIENNEJ). * * * Czîony KONIECZNE i ZABRONIONE, SÎABE i MOCNE. - Czîony SÎABE i MOCNE okreôlajâ sposób kontroli czîonów w zdaniu. Jeôli czîon jest SÎABY (oznaczny bez znaku '!'), to jego istnienie, lub nie istnienie w zdaniu rozmówcy jest punktowane i liczy sië tylko ostateczna ocena. Jeôli czîon jest MOCNY (ma dodatkowo znak '!'), to jeôli nie jest ZGODNY, to automatycznie porównywane listy otrzymujâ jakoôê korelacji == 0, czyli nie sâ zgodne. Jeôli czîon MOCNY jest ZGODNY, to jest punktowany tak jak SÎABY. - W celu zwiëkszenia szybkoôci dziaîania, czîony MOCNE naleûy umieszczaê na poczâtku listy. - Kaûde wystâpienie sîabego czîonu koniecznego w zdaniu i na liôcie zwiëksza prawdopodobieïstwo wybrania listy. Wystâpienie czîonu koniecznego tylko w zdaniu lub tylko na liôcie, zmniejsza prawdopodobieïstwo wybrania listy. - Program gwarantuje, ûe: dla zdania twierdzâcego nigdy nie zostanie wybrana lista z przeczeniem (nie). * * * Oznaczanie TWIERDZEÏ. - Jeôli tworzona lista ma byê twierdzâca, to naleûy na jej poczâtku ZAWSZE dodawaê czîon zabroniony (nie). Np.: !-(nie)+...dalszy ciâg listy twierdzâcej... - Gwarantuje to, ûe lista ta nigdy nie zostanie wybrana dla zdania przeczâcego, nawet jeôli to zdanie zawieraîoby wszystkie elementy konieczne z listy. * * * Biegunowoôê. - Jeôli tworzymy listë pozytywów, to naleûy teû stworzyê listë negatywów. !-(nie)+(jesteô)+// !-(nie)+(jesteô)+// - Gwarantuje to, ûe kiedy wpiszemy: "jesteô gîupia" - to zostanie wywoîanalista druga, a nie pierwsza, która jest w duûym stopniu zgodna ze zdaniem. - Jeôli tworzymy listë zaprzeczeï pozytywów, to naleûy teû stworzyê listë zaprzeczeï negatywów, np.: !+(nie)+(jesteô)+// !+(nie)+(jesteô)+// - Gwarantuje to, ûe jeôli wpiszemy: "nie jesteô gîupia" - to zostanie wywoîana lista druga, a nie pierwsza, która zawiera 2/3 wyrazów i moûe byê zaakceptowana. * * * Zdania pytajâce. - Jeôli tworzymy listë, to zastanówmy sië, czy ma ona dotyczyê zdania twierdzâcego, czy pytajâcego, czy moûe nadaje sië do obu typów. Zwiëksza to zakres pracy programu. * * * Uogólnianie. - Przy tworzeniu list naleûy pamiëtaê, aby byîy ogólne i pasowaîy do kaûdej sytuacji, w której moûe paôê zdanie, któremu odpowiadajâ. * * * Listy do uûytku wewnëtrznego. - Listy identyfikacyjne, zaczynajâce sië znakiem $ (dolar) sâ WYÎÂCZNIE do uûytku wewnëtrznego i NIE MOÛNA tworzyê list publicznych z takim znakiem na poczâtku. * * * Opis formalny. Eliza jest wywoîywana w przypadkach: - jeôli Denise-MYTH jest wyîâczona, to zawsze wywoîywana jest Eliza - w analizie logicznej zdania: - jeôli nie moûna zdania rozîoûyê logicznie (brak wyrazów w bazie, zîa skîadnia, lub inny problem w logicznym rozumieniu zdania) to Eliza - w przypadku komunikatów wewnëtrznych: - jeôli tylko wystëpujâ ich tîumaczenia w bazie Elizy, to one zostanâ wypisane, w przeciwnym razie pozostaje forma tradycyjna, - bez wzglëdu na istnienie tîumaczeï losowo moûe byê ZAMIAST nich wybrana Eliza w odpowiedzi na twierdzenie, pytanie, (jeôli nie powiedzie sië, to wypisywany jest komunikat jak miaîo byê wstëpnie) - przy tworzeniu pytania: - jeôli nie moûna znaleúê faktu about_fakt, to losowo moûna wybraê Elizë, - jeôli nie moûna utworzyê go w normalny sposób, to wybieramy Elizë, - jeôli moûna je uîoûyê, to losowo moûe zostaê wybrana czasem Eliza, UWAGA! jest zabezpieczenie, aby nie odpowiadaê 2x na to samo zdanie, dlatego eliza_memory.saved==KOD_TRUE oznacza, ûe juû odpowiedziano format bazy danych: * (E_POZYCJA_START) LISTA IDENTYFIKACYJNA NR 1 LISTA IDENTYFIKACYJNA NR 2 LISTA IDENTYFIKACYJNA NR N · (E_CIAG_LIST_START) LISTA FUNKCYJNA NR 1 LISTA FUNKCYJNA NR 2 LISTA FUNKCYJNA NR N * (E_POZYCJA_START) lub ~ (DATA_END) gdzie: LISTA IDENTYFIKACYJNA - oczekiwany ciâg wejôciowy dla danej pozycji LISTA FUNKCYJNA - ciâg wyjôciowy dla danej pozycji format zapisu: - pierwszy znak: (moûliwa operacja OR: !/?) ! - twierdzenie (E_TWIERDZENIE) ? - pytanie (E_PYTANIE) - wyrazy odmienione: (wyraz_odmieniony) (E_ODMIENIONY_START E_ODMIENIONY_END) - wyrazy podstawowe: (E_PODSTAWOWY_START E_PODSTAWOWY_END) - wyrazy odmienione i podstawowe: (wyraz_odmieniony) (wyraz_odmieniony) - czîony sîabe: +czîon, -czîon - czîony mocne: +!czîon,-!czîon - czîon mocny: znak specjalny: ! (E_HARD) - operacja AND: - znak specjalny: + (E_AND) - skîadnia: +WYRAZ lub +LISTA_WYRAZOW - operacja OR: - znak specjalny: / (E_OR) - skîadnia: WYRAZ1/WYRAZ2.../WYRAZN - operacja NOT: - znak specjalny: - (E_NOT) - skîadnia: -WYRAZ Przeformatowanie list zawierajâcych zmienne charakterystyczne na listy peîne, z elementami zastëpczymi dla zmiennych charakterystycznych. - zmienne charakterystyczne: $NAZWA_ZMIENNEJ{PARAMETRY} - opis: - $ - E_VARIABLE - { - E_PARAM_START - } - E_PARAM_END - {} - pusta lista, oznacza brak parametrów - dostëpne zmienne charakterystyczne z parametrami: - ODMIANA{wyraz_podstawowy,parametr1,parametr2...} - wstawia wyraz_podstawowy w okreôlonej parametrami odmianie (parametry sâ opisane pod hasîem ODMIANA) - ROZMOWCA{ODMIANA} - nazwa (imie) uûytkownika (E_ROZMOWCA) - TEMAT{ODMIANA} - aktualny temat (E_TEMAT) - OST_ZDANIE{FORMAT_ZDANIA} - peîne ostatnie zdanie, które wpisaî uûytkownik, w formacie listy, lub dosîownie, (E_OST_ZDANIE) - PRZED_OST_ZDANIE{FORMAT_ZDANIA} - jak wyûej, z tym, ûe dotyczy przed ostatniego zdania wpisanego przez uûytkownika - RESZTA_ZDANIA{WYRAZ_POCZATKOWY} - zwraca pozostaîâ czëôê zdania rozmówcy, rozpoczynajâc od podanego WYRAZ_POCZATKOWY (bez niego) - zmienne wywoîywane wewnëtrznie przez Denise, bez parametrów: $NAZWA_ZMIENNEJ{} - DENISE_TWIERDZENIE_SPRZECZNE{} - wywoîywane przy wykryciu sprzecznoôci w twierdzeniu - DENISE_TWIERDZENIE_ZGODNE{} - przy zgodnoôci twierdzenia rozmówcy z danymi w bazie - DENISE_PYTANIE_SPRZECZNE{} - przy pytaniu sprzecznym - DENISE_PYTANIE_CHYBA_SPRZECZNE{} - przy pytaniu sprzecznym ale nie na 100% - DENISE_PYTANIE_ZGODNE{} - przy pytaniu zgodnym z danymi - DENISE_PYTANIE_CHYBA_ZGODNE{} - przy pytaniu zgodnym z danymi, ale nie na 100% - DENISE_PYTANIE_BRAK_DANYCH{} - przy braku danych na stawiane pytanie - DENISE_ZAPAMIETUJE_INFORMACJE{} - przy zapamiëtywaniu nowych informacji - DENISE_WERYFIKUJE_SPRZECZNOSC{} - przy weryfikacji danych o maîym prawdopodobieïstwie i zmianie informacji na przeciwnâ - DENISE_ZWIEKSZAM_PEWNOSC{} - przy zwiëkszaniu informacji o maîej pewnoôci do 100% - DENISE_NOWY_ROZMOWCA{} - wywoîywane, kiedy ZMIENIONY zostaî rozmówca, jak równieû przy pierwszym przedstawieniu sië, - DENISE_ROZMOWCA_POWTORZYL_ZDANIE{} - wywoîywane, kiedy rozmówca powtórzyî to samo zdanie - DENISE_ROZMOWCA_SIE_NIE_PRZEDSTAWIL{} - kiedy rozmówca sië jeszcze nie przedstawiî pomimo wpisania jakichô zdaï - DENISE_ROZMOWCA_MILCZY{} - kiedy rozmówca nic nie wpisuje, ale wciska enter - DENISE_ELIZA_NIE_ZNALAZLA_ODPOWIEDZI{} - kiedy nie odnaleziono odpowiedzi Elizy w bazie - opis parametrów: - ODMIANA: - UWAGA! jeôli sië definiuje parametry odmiany, to trzeba definiowaê ich wystarczajâco duûo, w przeciwnym przypadku pozostaîe parametry sâ dobierane na drodze losowej! - format: PARAMETR,PARAMETR,PARAMETR... - parametry: (w definicji opisane jako E_nazwa_parametru) przypadki: MIANOWNIK, BIERNIK, CELOWNIK, DOPELNIACZ, NARZEDNIK, MIEJSCOWNIK, WOLACZ liczby: LICZBA_POJEDYNCZA,LICZBA_MNOGA rodzaje: RODZAJ_MESKI,RODZAJ_ZENSKI,RODZAJ_NIJAKI,RODZAJ_MESKOOSOBOWY,RODZAJ_NIEMESKOOSOBOWY osoby: OSOBA_JA,OSOBA_TY,OSOBA_ON,OSOBA_MY,OSOBA_WY,OSOBA_ONI czasy: CZAS_PRZESZLY,CZAS_TERAZNIEJSZY,CZAS_PRZYSZLY stopnie: STOPIEN_ROWNY,STOPIEN_WYZSZY,STOPIEN_NAJWYZSZY specjalne: RODZAJ_ROZMOWCY,RODZAJ_TEMATU - FORMAT_ZDANIA: - LISTA - w formacie listy - ORYGINAL - oryginalny wpis - WYRAZ_POCZATKOWY: - wyraz_odmieniony - wyraz, od którego zostanie powtórzone zdanie,